home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / u_man / cat1 / as.z / as
Encoding:
Text File  |  2002-10-03  |  17.0 KB  |  337 lines

  1. AS(1)                                                 Last changed: 1-28-99
  2.  
  3.  
  4. NNAAMMEE
  5.      aass - SGI MIPSpro assembler
  6.  
  7. SSYYNNOOPPSSIISS
  8.      aass [--6644] [--ccpppp] [--DD_n_a_m_e==[[_d_e_f]]] [--EE] [--GG_n_u_m] [--gg[[_s_e_t_t_i_n_g]]]] [--hheellpp] [--II]
  9.      [--kkeeeepp] [--nn3322] [--nnooccpppp] [--nnoonn__sshhaarreedd] [--oo3322] [--OO_l_e_v_e_l] [--oo _o_u_t_p_u_t]
  10.      [--PP] [--sshhooww] [--UU_n_a_m_e] [--wwooffff aallll] _f_i_l_e ...
  11.  
  12. IIMMPPLLEEMMEENNTTAATTIIOONN
  13.      IRIX systems
  14.  
  15. DDEESSCCRRIIPPTTIIOONN
  16.      The MIPSpro assembler, aass, compiles a symbolic assembly language
  17.      source program and produces an object file in eellff format.  The
  18.      assembler supports three different Application Binary Interfaces
  19.      controlled by the following options:  --oo3322, --nn3322, and --6644 (see the
  20.      aabbii(5) man page).  The assembler never runs the loader.
  21.  
  22.      aass defines the following preprocessor symbols:
  23.  
  24.           __LLAANNGGUUAAGGEE__AASSSSEEMMBBLLYY       ____ssggii, ____mmiippss,
  25.  
  26.           ____hhoosstt__mmiippss              ____uunniixx, __MMIIPPSSEEBB,
  27.  
  28.           __SSYYSSTTYYPPEE__SSVVRR44            __SSVVRR44__SSOOUURRCCEE
  29.  
  30.           __SSGGII__SSOOUURRCCEE,             __MMIIPPSS__IISSAA
  31.  
  32.           __MMIIPPSS__SSIIMM                __MMIIPPSS__FFPPSSEETT,
  33.  
  34.           __MMIIPPSS__SSZZIINNTT              __MMIIPPSS__SSZZLLOONNGG
  35.  
  36.           __MMIIPPSS__SSZZPPTTRR
  37.  
  38.      These are displayed by specifying the --sshhooww option on the compiler
  39.      command line.
  40.  
  41.      See the lldd(1) man page for load-time options.
  42.  
  43. IISSAA//AABBII CCOOMMMMAANNDD LLIINNEE OOPPTTIIOONNSS
  44.      The following options control the choice of ABI and Instruction Set
  45.      Architecture (ISA).
  46.  
  47.      --oo3322 or --3322    Generate a 32-bit object.  This defaults to --mmiippss22 if
  48.                     --mmiippss11 is not specified.  This is the default when
  49.                     compiling on any non-R8000 based system, if no default
  50.                     specification file is present.  See the oo3322(5) man page
  51.                     for details.
  52.  
  53.      --6644            Generate a 64-bit object.  This defaults to --mmiippss44 if
  54.                     --mmiippss33 is not specified.  This is the default when
  55.                     compiling on any R8000 based system, if no default
  56.                     specification file is present.  See the Defaults
  57.                     Specification Files subsection at the end of this man
  58.                     page for details.
  59.  
  60.      --nn3322           Generate an nn3322 object.  This defaults to --mmiippss33 if
  61.                     --mmiippss44 is not specified.
  62.  
  63.      --mmiippss_n         Determine architecture type. _n can be one of the
  64.                     following values:
  65.  
  66.                     11    Generate code using the instruction set of the
  67.                          R2000/R3000 RISC architecture, and search for
  68.                          mmiippss11 libraries/objects at link time.  This
  69.                          defaults to --oo3322..
  70.  
  71.                     22    Generate code using the MIPS II instruction set
  72.                          (MIPS I + R4000 specific extensions), and search
  73.                          for mmiippss22 libraries/objects at link time.  This
  74.                          defaults to --oo3322..
  75.  
  76.                     33    Generate code using the full MIPS III (e.g. R4000)
  77.                          instruction set, and search for mmiippss33
  78.                          libraries/objects at link time.  This defaults to
  79.                          --nn3322 if --6644 has not been specified.  On R8000-
  80.                          based systems this defaults to --6644.
  81.  
  82.                     44    Generate code using the full MIPS IV instruction
  83.                          set which is supported on R10000, R5000 and R8000
  84.                          systems.  Also search for mmiippss44 libraries/objects
  85.                          at link time.  This is the default on R8000
  86.                          systems.  This defaults to --nn3322 if --6644 is not
  87.                          specified.  On R8000-based systems it defaults to
  88.                          --6644.
  89.  
  90. OOPPTTIIOONN DDEESSCCRRIIPPTTIIOONNSS
  91.      The following options are valid with this command:
  92.  
  93.      --ccpppp           Run the C macro preprocessor on assembly source files
  94.                     before compiling.  This is the default.
  95.  
  96.      --DD_n_a_m_e==[[_d_e_f]] or --DD_n_a_m_e
  97.                     Define the _n_a_m_e to the C macro preprocessor, as if by
  98.                     ##ddeeffiinnee.  If no definition is given, the name is
  99.                     defined as 11.
  100.  
  101.      --EE             Run only the C macro preprocessor on the specified
  102.                     assembly source files, and send the result to standard
  103.                     output.
  104.  
  105.      --GG_n_u_m          Specify the maximum size, in bytes, of a data item that
  106.                     is to be accessed from the global pointer.  _n_u_m must be
  107.                     a decimal number.
  108.  
  109.                     If _n_u_m is zero, no data is accessed from the global
  110.                     pointer.  For --6644 and --nn3322, the default value for _n_u_m
  111.                     is 8 bytes.  For --oo3322 the default value for _n_u_m is 0.
  112.  
  113.      --gg[[_s_e_t_t_i_n_g]]    Produce symbol table information.  If _s_e_t_t_i_n_g is 0, the
  114.                     assembler does not produce symbol table information for
  115.                     symbolic debugging.  If no value is given for _s_e_t_t_i_n_g,
  116.                     the assembler produces additional symbol table
  117.                     information for full symbolic debugging.  This is the
  118.                     default.
  119.  
  120.      --hheellpp          List all the available options.  This does not run the
  121.                     assembler.  nn3322 or 6644 only.
  122.  
  123.      --II[[_d_i_r]]        Determine searching options for iinncclluuddee files.  Using
  124.                     --II without an argument disables searching for ##iinncclluuddee
  125.                     files in the standard directory ( //uussrr//iinncclluuddee ).
  126.  
  127.                     Using --II _d_i_r allows you to specify a directory for
  128.                     searching.
  129.  
  130.                     ##iinncclluuddee files whose names do not begin with // are
  131.                     always sought first in the directory of the _f_i_l_e
  132.                     argument, then in directories specified in --II options,
  133.                     and finally in the standard directory (//uussrr//iinncclluuddee).
  134.  
  135.      --kkeeeepp          Build intermediate compilation files named after the
  136.                     corresponding source files, with the suffix replaced by
  137.                     one that is appropriate for the type of intermediate
  138.                     file (for example, ..ii indicates preprocessed source).
  139.                     These intermediate files are never removed.
  140.  
  141.      --nnooccpppp         Do not run the C macro preprocessor on assembly source
  142.                     before compiling.
  143.  
  144.      --nnoonn__sshhaarreedd    Do not generate position-independent code (PIC).
  145.  
  146.      --OO_l_e_v_e_l        Sets the optimization level.  _l_e_v_e_l can be one of the
  147.                     following values:
  148.  
  149.                     00    Turn off all optimizations.  This is the default
  150.                          for --6644 and --nn3322.
  151.  
  152.                     11    Turn on all optimizations that can be done easily.
  153.                          This is the default for --oo3322..
  154.  
  155.                     22    Turn on all optimizations.  For --6644 or --nn3322, this
  156.                          means scheduling the code; for --oo3322, this means
  157.                          more aggressive optimizations.
  158.  
  159.                     Specifying --OO with no options is equivalent to
  160.                     specifying --OO22.
  161.  
  162.      --oo _o_u_t_p_u_t      Name the final output file _o_u_t_p_u_t.  If this option is
  163.                     not specified, the output file is the input file name
  164.                     with a ..oo suffix rather than the ..ss suffix.
  165.  
  166.      --PP             Run only the C macro preprocessor and put the result
  167.                     for each ..ss file in a corresponding ..ii file.  The ..ii
  168.                     file has no ## lines in it.
  169.  
  170.      --sshhooww          Print the passes as they execute with their arguments
  171.                     and their input and output files.
  172.  
  173.      --UU_n_a_m_e         Remove any initial definition of _n_a_m_e.
  174.  
  175.      --wwooffff aallll      Suppress all warning messages.  nn3322 or 6644 only.
  176.  
  177. CCOOMMPPIILLEERR DDEEVVEELLOOPPMMEENNTT OOPPTTIIOONNSS
  178.      The following options aid compiler development and are not generally
  179.      used:
  180.  
  181.      --ffuullllaassoopptt     oo3322 only.  Enable all the global optimizations done by
  182.                     the assembler. The assembler can perform several global
  183.                     optimizations that are enabled automatically for high
  184.                     level languages like C, Pascal and Fortran. These
  185.                     optimizations are turned off by default while compiling
  186.                     an assembly language source file. This is done because
  187.                     the optimizations rely on the procedure calling
  188.                     convention to be strictly followed. Several assembly
  189.                     language programs violate these restrictions. The
  190.                     --ffuullllaassoopptt option allows enabling of these
  191.                     optimizations for ..ss files.
  192.  
  193.      --HH_c            oo3322 only. Halt compiling after the pass specified by
  194.                     the character _c, producing an intermediate file for the
  195.                     next pass. _c can have the value [[ aa ]].. It selects the
  196.                     assembler pass in the same way as the --tt option.  If
  197.                     this option is used, the symbol table file produced and
  198.                     used by the passes is the last component of the source
  199.                     file with the suffix changed to ..TT and is not removed.
  200.                     This switch is non-standard and may not be supported
  201.                     across product lines.
  202.  
  203.      --KKPPIICC          Activates the assembler directives for generating
  204.                     position-independent code (PIC).  For programs
  205.                     assembled with the --nn3322 and --6644 options, see _T_h_e
  206.                     _M_I_P_S_p_r_o _6_4-_B_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e for more
  207.                     information.  For codes compiled with the --oo3322 option,
  208.                     see the _M_I_P_S_p_r_o _A_s_s_e_m_b_l_y _L_a_n_g_u_a_g_e _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e.
  209.  
  210.      --WW_c,,_a_r_g_1[[,,_a_r_g_2......]]
  211.                     nn3322 or 6644 only. Pass the _a_r_g_1 value(s) to the assembler
  212.                     pass designated by _c. _c can have a value of pp, aa, or bb
  213.                     (see the information in the --tt option in "Naming
  214.                     Options", below).
  215.  
  216.                     Several options affect the various optimizations done
  217.                     by the assembler. Some of these assembler optimizations
  218.                     are new and may have problems during compilation:
  219.  
  220.                     --WWbb,,--nnooxxbbbb
  221.                          Turn off cross basic block instruction scheduling.
  222.  
  223.                     --WWbb,,--nnooppeeeepp
  224.                          Turn off peephole optimizations.
  225.  
  226.                     --WWbb,,--nnoosswwppiippee
  227.                          Turn off software pipelining.
  228.  
  229.                     --WWbb,,--nnoossyymmrreeggss
  230.                          Turn off symbolic register renaming.
  231.  
  232.                     These global optimizations are enabled only when
  233.                     optimization level --OO22 or higher is selected for high
  234.                     level languages or the --ffuullllaassoopptt option is used for
  235.                     assembly language files.
  236.  
  237.                     If the TTMMPPDDIIRR environment variable is set, the value is
  238.                     used as the directory to place any temporary files
  239.                     rather than the default directory, //ttmmpp.
  240.  
  241.      --YYaa,,_d_i_r_e_c_t_o_r_y  nn3322 or 6644 only. Use the aassmm pass from the given
  242.                     _d_i_r_e_c_t_o_r_y.
  243.  
  244.    NNaammiinngg OOppttiioonnss
  245.      The --tt[[_c_h_a_r]], --hh_p_a_t_h, and --BB_s_t_r_i_n_g options select a name to use for a
  246.      particular pass.  These arguments are processed from left to right so
  247.      their order is significant.
  248.  
  249.      When the --BB option is encountered, the selection of names takes place
  250.      using the last --hh and --tt options.
  251.  
  252.      These three options must be used together.
  253.  
  254.      --tt[[_c_h_a_r]]       Select the names.  The names selected are those
  255.                     designated by a combination of _c_h_a_rs.  _c_h_a_r can be any
  256.                     of the following:
  257.  
  258.                     NNaammee           _c_h_a_r vvaalluueess
  259.  
  260.                     iinncclluuddee        hh
  261.  
  262.                     ccpppp            pp
  263.  
  264.                     aass00            aa
  265.  
  266.                     aass11            bb
  267.  
  268.                     If hh is in the --tt argument, a directory is added to the
  269.                     list of directories to be used in searching for
  270.                     ##iinncclluuddee files.  This directory name has the form
  271.                     //uussrr//iinncclluuddee//_s_t_r_i_n_g.  This directory contains the
  272.                     include files for the _s_t_r_i_n_g release of the compiler.
  273.                     The standard directory is still searched.
  274.  
  275.      --hh_p_a_t_h         Use _p_a_t_h rather than the directory where the name is
  276.                     normally found.  This switch is non-standard and may
  277.                     not be supported across product lines.
  278.  
  279.      --BB_s_t_r_i_n_g       Append _s_t_r_i_n_g to all names specified by the --tt option.
  280.                     If no --tt option has been processed before the --BB,, the
  281.                     --tt option is assumed to be hhppaabb.  This list designates
  282.                     all names.
  283.  
  284. NNOOTTEESS
  285.      The SSGGII__AABBII environment variable can change the default ABI behavior
  286.      to be --oo3322, --nn3322, or --6644; see ggeettaabbii(3c) for details.  Also, the
  287.      //eettcc//ccoommppiilleerr..ddeeffaauullttss file can be used to change default behavior.
  288.      See the cccc(1) man page for more information.
  289.  
  290.      The CCOOMMPP__TTAARRGGEETT__RROOOOTT, TTOOOOLLRROOOOTT, RRLLSS__IIDD__OOBBJJEECCTT environment variables
  291.      are used by aass while compiling the compiler itself.  Their meaning is
  292.      left undefined intentionally.  They should not be set in your
  293.      environment.
  294.  
  295. FFIILLEESS
  296.      * All ABIs:
  297.  
  298.        ffiillee..oo                        object file output
  299.  
  300.        //uussrr//iinncclluuddee                  standard ##iinncclluuddee file directory
  301.  
  302.      * The following files are for --oo3322 only:
  303.  
  304.        //ttmmpp//ccttmm**                     temporary files
  305.  
  306.        //uussrr//lliibb//ccpppp                  C macro preprocessor
  307.  
  308.        //uussrr//lliibb//aass00                  symbolic assembly language translator
  309.  
  310.        //uussrr//lliibb//aass11                  binary assembler and reorganizer
  311.  
  312.      * The following files are for --nn3322 and --6644 only:
  313.  
  314.        //ttmmpp//ccmmppllrr**                   temporary files
  315.  
  316.        //uussrr//lliibb3322//ccmmppllrrss//ccpppp         C macro preprocessor
  317.  
  318.        //uussrr//lliibb3322//ccmmppllrrss//aassmm         symbolic assembler
  319.  
  320. BBUUGGSS
  321.      The assembler attempts to continue after finding semantic errors.
  322.      This may result in internal errors.
  323.  
  324. SSEEEE AALLSSOO
  325.      cccc(1), wwhhaatt(1)
  326.  
  327.      ggeettaabbii(3c)
  328.  
  329.      _M_I_P_S_p_r_o _A_s_s_e_m_b_l_y _L_a_n_g_u_a_g_e _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
  330.  
  331.      _M_I_P_S_p_r_o _N_3_2 _A_B_I _H_a_n_d_b_o_o_k
  332.  
  333.      _M_I_P_S_p_r_o _6_4-_b_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
  334.  
  335.  
  336.      This man page is available only online.
  337.